﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity.ModelConfiguration;
using CapaDeDominio;

namespace CapaDeDatos.EF.ORM
{
    public class ServicioMapping : EntityTypeConfiguration<Servicio>
    {
        public ServicioMapping()
            : base()
        {
            ToTable("servicio");
            HasKey(s => s.Codigo);
            Property(s => s.Codigo)
                .HasColumnName("codigo")
                .IsRequired()
                .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None);
            Property(s => s.Nombre)
                .HasColumnName("nombre")
                .IsRequired();
            Property(s => s.Descripcion)
                .HasColumnName("descripcion")
                .IsRequired();          
             Property(s => s.Alquiler)
                .HasColumnName("alquiler")
                .IsRequired();
             Property(s => s.Estado)
                 .HasColumnName("estado")
                 .IsRequired();
             HasMany<Sala>(s => s.Salas)
                 .WithMany(i => i.Servicios)
                 .Map(m => m.ToTable("detalle_sala_servicio")
                     .MapLeftKey("codigo_servicio")
                     .MapRightKey("codigo_sala"));
             HasMany<Reserva>(s => s.Reservas)
                 .WithMany(i => i.ServiciosAdicionales)
                 .Map(m => m.ToTable("detalle_reserva_servicio")
                     .MapLeftKey("codigo_servicio")
                     .MapRightKey("codigo_reserva"));
       }
    }
}